﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;




namespace UI.Desktop
{
    public partial class frmEditarPaciente : Form
    {
        public frmEditarPaciente()
        {
            InitializeComponent();
        }

        private void btnCerrar_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        
        private void btnBuscar_Click(object sender, EventArgs e)
        {
            try
            {

                string concatenado = cbPaciente.Text.ToString();
                Business.Entities.Paciente Pac = new Business.Entities.Paciente();
                DataSet dsPac = Pac.ObtenerDatosPaciente(concatenado);

                txtDNI.Text = dsPac.Tables["Paciente"].Rows[0][1].ToString();
                txtNombre.Text = dsPac.Tables["Paciente"].Rows[0][2].ToString();
                txtApellido.Text = dsPac.Tables["Paciente"].Rows[0][3].ToString();
                txtDireccion.Text = dsPac.Tables["Paciente"].Rows[0][6].ToString();
                txtEmail.Text = dsPac.Tables["Paciente"].Rows[0][5].ToString();
                txtTelefono.Text = dsPac.Tables["Paciente"].Rows[0][4].ToString();
                cbCiudad.Text = dsPac.Tables["Paciente"].Rows[0][8].ToString();
                cbProvincia.Text = dsPac.Tables["Paciente"].Rows[0][7].ToString();
                chkPaciente.Checked = Convert.ToBoolean(dsPac.Tables["Paciente"].Rows[0][11]);
                cbObraSocial.Text = dsPac.Tables["Paciente"].Rows[0][10].ToString();

                if (dsPac.Tables["Paciente"].Rows[0][9].ToString() == "M")
                {
                    rdbMasculino.Checked = true;
                }
                else
                {
                    rdbFemenino.Checked = true;
                }

                cbObraSocial.Text = dsPac.Tables["Paciente"].Rows[0][10].ToString();
            }


            catch { MessageBox.Show("El Paciente no existe", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning); }





        }

        private void cbProvincia_Click(object sender, EventArgs e)
        {

        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("¿Desea eliminar el Paciente " + txtApellido.Text.ToString() + " " + txtNombre.Text.ToString() + "?", "Atención", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
            {
                try
                {
                    Business.Entities.Paciente Pac2 = new Business.Entities.Paciente();
                    // MessageBox.Show("Select * from Personal where DNI = '+ dni +'");
                    Pac2.EliminarPaciente(cbPaciente.Text.ToString());
                    MessageBox.Show("Paciente eliminado correctamente.");
                    this.Refresh();
                }
                catch 
                {
                    MessageBox.Show("El Paciente no se pudo eliminar, revise que el paciente no tenga turnos asignados.-", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }

            }
        }

        private void btnAgregarCiudad_Click(object sender, EventArgs e)
        {
            // BOTON PARAR AGREGAR CIUDAD, ALGUNAS NO ESTAN.....
        }

        private void btnGuardarPaciente_Click(object sender, EventArgs e)
        {
            if (txtNombre.Text == "" || txtApellido.Text == "" || cbPaciente.Text == "")
            {
                MessageBox.Show("Campos invalidos, no puede haber ninguno vacio", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            else
            {
                Business.Entities.Paciente enPac = new Business.Entities.Paciente();
                string concatenado = cbPaciente.Text;
                DataSet dsPac = new DataSet();
                dsPac = enPac.ObtenerDatosPaciente(concatenado);


                dsPac.Tables["Paciente"].Rows[0][1] = txtDNI.Text;
                dsPac.Tables["Paciente"].Rows[0][2] = txtNombre.Text;
                dsPac.Tables["Paciente"].Rows[0][3] = txtApellido.Text;
                dsPac.Tables["Paciente"].Rows[0][4] = txtTelefono.Text;
                dsPac.Tables["Paciente"].Rows[0][5] = txtEmail.Text;
                dsPac.Tables["Paciente"].Rows[0][6] = txtDireccion.Text;
                dsPac.Tables["Paciente"].Rows[0][7] = cbProvincia.Text;
                dsPac.Tables["Paciente"].Rows[0][8] = cbCiudad.Text;
                dsPac.Tables["Paciente"].Rows[0][10] = cbObraSocial.Text;
                dsPac.Tables["Paciente"].Rows[0][11] = chkPaciente.Checked;
                
                if (rdbMasculino.Checked == true)
                {
                    dsPac.Tables["Paciente"].Rows[0][9] = "M";
                }
                
                else { dsPac.Tables["Paciente"].Rows[0][9] = "F"; }



                enPac.EditarPaciente(dsPac);
                MessageBox.Show("El Paciente fue modificado con exito", "Informacion", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Close();

            }
        }


        private void cbPaciente_Click_1(object sender, EventArgs e)
        {
            Business.Entities.Paciente pac = new Business.Entities.Paciente();
            DataSet dsPac = new DataSet();
            dsPac = pac.ObtenerListaPacientesParaModificar();
            ObtenerPacientes(dsPac);
        }


        private void ObtenerPacientes(DataSet dsPac)
        {
            cbPaciente.Text = "Seleccione el paciente";
            cbPaciente.DataSource = dsPac.Tables["Paciente"];
            cbPaciente.DisplayMember = dsPac.Tables["Paciente"].Columns[1].Caption.ToString();
        }

       
      

        private void cbObraSocial_Click(object sender, EventArgs e)
        {
            Business.Entities.Paciente ObraSocial = new Business.Entities.Paciente();
            DataSet dsObraSocial = new DataSet();
            dsObraSocial = ObraSocial.ObtenerListaObraSocial();
            ObtenerObraSocial(dsObraSocial);
        
        }



        private void ObtenerObraSocial(DataSet dsObraSocial)
        {
            cbObraSocial.Text = "Seleccione su Obra social";
            cbObraSocial.DataSource = dsObraSocial.Tables["ObraSocial"];
            cbObraSocial.DisplayMember = dsObraSocial.Tables["ObraSocial"].Columns[1].Caption.ToString(); // como dsProv lleva el id_prov y el nombre ponemos 1 que es la columna del nombre
        }

        
    
    }
}
